This invention relates generally to a frame buffer for raster output devices, and more particularly, to a frame buffer capable of providing digital video data to a raster output device for printing a visual image.
A visual image printed on a page by a raster output device, such as a laser printer, consists of a plurality of pixels arranged as a two dimensional matrix (X dimension and Y dimension). Each of the pixels is defined as either black or white, and is processed by a host CPU. The processed pixels are then transmitted to a laser printer engine through one or more data transmission line(s). One major problem in the process of defining pixels of a page and sending the information to the printer engine is that the host CPU defines pixels at a much slower rate than that needed by the printer engine.
A solution to this synchronous process problem is to use a frame buffer (or a memory). Each of the defined pixels of a visual image is stored in a respective bit in the frame buffer. A black pixel can be defined as "0", and a white pixel as "1" (or vice versa) in the frame buffer. There are two conventional approaches involving the construction of a frame buffer. One approach is to create an entire page by using a full bit map, meaning each pixel position on the page corresponds to a bit position in the frame buffer. A second approach is to receive an entire page description from the host CPU and to create a display list. Under the second approach, the frame buffer can be smaller than full bit map depending upon the speed of creating raster data from the display list.
Since the development of Page Description Languages (PDL), such as PostScript, the number of raster devices using the full page frame buffer has increased. Because of the nature of PDL, the rasterizing controller can be simplified by using the full page frame buffer rather than the partial buffer from the display list.
Once the full page frame buffer is formed, the rasterizing controller reads the frame buffer and sends the bit pattern to the raster device. The scan direction of this frame buffer is normally fixed to accommodate the linear memory address system. This fixed scan direction does not cause any problem when the output device functions for one purpose, such as either printing or copying.
However, the recent trend to add more functions on one device causes an additional demand to deal with the scanning of the full page frame buffer. For example, Ricoh has announced a digital copier which can function as a copier and a printer. As a copier, a user can change the input paper trays easily. In addition, the digital copier has different input trays available for the user. Letter-size paper can have a short edge-first paper tray and a long edge-first tray. Under certain conditions, the image constructed in the frame buffer may not match the paper's available configuration, for example, when the page image is constructed for the short edge-first tray, and the paper is available only from the long edge-first tray. Such a case can occur when the user interrupts the print job, physically changes the tray, and copies several pages from the long edge tray. Under such a condition, the created image in the frame buffer must be scanned with a scan direction different from the originally planned scan direction.
There are various conventional approaches which deal with transposing the frame buffer. For example, in one conventional approach, in order to change from a short edge paper tray to a long edge paper tray, the entire frame buffer is rotated 90.degree. to allow linear scanning of the frame buffer. The problem with this approach is that it is appropriate only when the frame buffer dimension is small. When the resolution of raster device is fine, such as 600 dots per inch (DPI), the full page frame buffer consists of approximately 4 Mega bytes for a bi-level (black and white) device. The memory size will be much larger for the color or gray scale devices of the higher resolution. Therefore, the 90 degree rotation for such a high resolution takes too much time and requires more memory resources.
Chang et al. (U.S. Pat. Nos. 4,965,748; 4,977,519; 4,984,182) uses a flexible frame buffer. However, their scan direction of the frame buffer is fixed.
Motoyama, et al. ("Method for Controlling the Buffer Scan and Placing the Origin of the Buffer", U.S. Ser. No. 07/379,019) describes a flexible method to define the output image dimension once the image is formed in the full page frame buffer. However, the scan direction of the buffer is fixed.